//给你一个字符串 s ，根据下述规则反转字符串： 
//
// 
// 所有非英文字母保留在原有位置。 
// 所有英文字母（小写或大写）位置反转。 
// 
//
// 返回反转后的 s 。 
//
// 
//
// 
// 
//
// 示例 1： 
//
// 
//输入：s = "ab-cd"
//输出："dc-ba"
// 
//
// 
// 
//
// 示例 2： 
//
// 
//输入：s = "a-bC-dEf-ghIj"
//输出："j-Ih-gfE-dCba"
// 
//
// 
// 
//
// 示例 3： 
//
// 
//输入：s = "Test1ng-Leet=code-Q!"
//输出："Qedo1ct-eeLg=ntse-T!"
// 
//
// 
//
// 提示 
//
// 
// 1 <= s.length <= 100 
// s 仅由 ASCII 值在范围 [33, 122] 的字符组成 
// s 不含 '\"' 或 '\\' 
// 
// 👍 124 👎 0


package leetcode.editor.cn;

//仅仅反转字母

import leetcode.editor.cn.level.简单;

public class P917_仅仅反转字母 implements 简单 {
    public static void main(String[] args) {
        System.out.println((int) 'a');
        System.out.println((int) 'z');
        System.out.println((int) 'A');
        System.out.println((int) 'Z');
        Solution solution = new P917_仅仅反转字母().new Solution();
        solution.reverseOnlyLetters("7_28");
    }

    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
        public String reverseOnlyLetters(String s) {
            char[] array = s.toCharArray();
            for (int left = 0, right = s.length() - 1; left < right; left++, right--) {
                while (left < right && !Character.isLetter(array[left])) {
                    left++;
                }
                while (left < right && !Character.isLetter(array[right])) {
                    right--;
                }
                char temp = array[left];
                array[left] = array[right];
                array[right] = temp;
            }
            return String.valueOf(array);
        }
    }
//leetcode submit region end(Prohibit modification and deletion)


}